/**
 * @Project : algorithm-learning
 * @Author : Ruoyu Wang
 * @User : Momenta
 * @DateTime : 2024/3/16 9:30
 */

//小红定义一个字符串的权值是: 字符串辅音数量和元音数量的差的绝对值。
//例如， "arcaea"的权值是2，因为有4个元音，2个辅音，权值为|4-2|=2。
//现在小红拿到了一个字符串，她想把这个字符串切成两个非空字符串，需要满足两个字符串的权值相等。
//小红想知道，有多少种不同的切割方式?
//我们定义，元音有”aeiou"这五种，其余字母均为辅音
//
//输入描述
//  一个仅包含小写字母的字符串，长度不超过200000。
//输出描述
//  小红的切割方案数。
//
//示例1
//输入
//arcaea
//输出
//2
//说明
//方案1: "a"和"rcaea"，权值均为 1。
//方案2: "arcae"和"a"，权值均为 1。

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s;
    cin >> s;

    int a[s.size() + 1];
    int b[s.size() + 1];

    a[0] = 0;
    b[0] = 0;

    for (int i = 0; i < s.size(); ++i) {
        a[i + 1] = a[i];
        b[i + 1] = b[i];
        if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u') {
            a[i + 1]++;
        } else b[i + 1]++;
    }

    int res = 0;
    for (int i = 0; i < s.size(); ++i) {
        int s1 = abs(a[i] - a[0] - b[i] + b[0]);
        int s2 = abs(a[s.size()] - a[i] - b[s.size()] + b[i]);
        if (s1 == s2) res++;
    }

    printf("%d", res);

    return 0;
}